
$(function () {
    setTimeout('$("html").removeClass("js")', 1);
    menuMgrFuc.searchMenuValidation();
    menuMgrFuc.addMenuValidation();
    menuMgrFuc.updateMenuValidation();
    
    $("#search_btn").click(function(){
        //清空pageIndex
        $("input[name=currentPage]").val(1);
    });

    if(navigator.userAgent.indexOf("MSIE")>0){
        if(navigator.userAgent.indexOf("MSIE 7.0")>0){
            $(".ttip_r").removeClass("ttip_r");
        }
    }
});

function show_sub_menu(menuId){
	$("#menuId").val("");
	$("#menuName").val("");
	$("#parentId").val(menuId);
	$("#search_form").submit();
}

/*显示增加菜单信息 开始*/
var addMenuRoleMap = new Map();
$("#add_menu_btn").click(function() {
	add_bind_role($("#add_role_name").val());
    $("#add_menu_win").modal('show');
});
$("#add_role_search_btn").click(function(){
	add_bind_role($("#add_role_name").val());
});
function add_bind_role(roleName){
	$("#add_start_set").empty();
	$.post("role/findRole.action",{roleName:roleName},function(json){
		if (json&&json.success) {
		  $.each(json.result.data, function(i,item){
			  if(!addMenuRoleMap.containsKey(item.roleId.toString())){
				  $("#add_start_set").append("<label class='checkbox'><input type='checkbox' value='"+item.roleId+"'/><font title='"+item.roleDescription+"'>"+item.roleName+"</font></label>");
			  }
		  });
		}else {
        	alert(json?json.msg:"请求失败！");
        }
	});
}

$("#add_role_right_btn").click(function(){
	$("#add_start_set>label>:checkbox:checked").each(function(i,item){
		if(!addMenuRoleMap.containsKey(item.value)){
			addMenuRoleMap.put(item.value,item.value);
			$("#add_end_set").prepend($(item).parent());
		}
	});
});

$("#add_role_left_btn").click(function(){
	$("#add_end_set>label>:checkbox:checked").each(function(i,item){
		if(addMenuRoleMap.containsKey(item.value)){
			addMenuRoleMap.remove(item.value);
			$("#add_start_set").prepend($(item).parent());
		}
	});
});
/*显示修改菜单信息 结束*/

/*增加菜单信息方法 开始*/
$("#add_menu_confirm").click(function () {	
    var  show_add_menu_name_status  = $.trim($("#show_add_menu_name_status").html());
    //表单数据验证通过
    if ($('#add_menu_form').validate().form() && 0===show_add_menu_name_status.length) {
        $.post("menu/add.action",
            {
        		menuName:$.trim($("#add_menu_name").val()),
                menuUrl:$.trim($("#add_menu_url").val()),
                menuSort:$("#add_menu_sort").val(),
                parentId:$("#parentId").val(),
                menuDescription:$.trim($("#add_menu_description").val()),
                roleIds:addMenuRoleMap.keys().join(",")
            },
            function (json) {
            	if (json&&json.success) {
                    //关闭增加菜单信息窗口
                    $("#add_menu_win").modal('hide');
                    //重置表单数据
                    document.getElementById("add_menu_form").reset();
                    //重新刷新查询列表
                    refreshPage();
                } else {
                	alert(json?json.msg:"请求失败！");
                }
       });
    }
});
/*增加菜单信息方法 结束*/


/*显示修改菜单信息 开始*/
var updateMenuRoleMap = new Map();
function show_update_menu(id) {
    $.post("menu/detail.action",{menuId:id},
		function (json) {
	    	if (json&&json.success) {
	        	var menu=json.result.data;
	            $("#update_menu_id").val(menu.menuId);
	            $("#update_menu_name").val(menu.menuName);
	            $("#update_menu_url").val(menu.menuUrl);
	            $("#update_menu_sort").val(menu.menuSort);
	            $("#update_menu_description").val(menu.menuDescription);
	            //角色信息
	            updateMenuRoleMap.clear();
	            $("#update_end_set").empty();
	            $.each(json.result.roles, function(i,item){
	            	updateMenuRoleMap.put(item.roleId.toString(),item.roleId.toString());
	            	//首次加载初始化已有角色
	            	$("#update_end_set").append("<label class='checkbox'><input type='checkbox' value='"+item.roleId+"'/><font title='"+item.roleDescription+"'>"+item.roleName+"</font></label>");
	            });	            
	            update_bind_role($("#update_role_name").val());
	            
	            $("#update_menu_win").modal('show');
	    	}else{
	    		alert(json?json.msg:"请求失败！");
	        }
    });
}

function update_bind_role(roleName){
	$("#update_start_set").empty();
	$.post("role/findRole.action",{roleName:roleName},function(json){
		if (json&&json.success) {
		  $.each(json.result.data, function(i,item){
			  if(!updateMenuRoleMap.containsKey(item.roleId.toString())){
				  $("#update_start_set").append("<label class='checkbox'><input type='checkbox' value='"+item.roleId+"'/><font title='"+item.roleDescription+"'>"+item.roleName+"</font></label>");
			  }
		  });
		}else {
        	alert(json?json.msg:"请求失败！");
        }
	});
}
$("#update_role_search_btn").click(function(){
	update_bind_role($("#update_role_name").val());
});
$("#update_role_right_btn").click(function(){
	$("#update_start_set>label>:checkbox:checked").each(function(i,item){
		if(!updateMenuRoleMap.containsKey(item.value)){
			updateMenuRoleMap.put(item.value,item.value);
			$("#update_end_set").prepend($(item).parent());
		}
	});
});

$("#update_role_left_btn").click(function(){
	$("#update_end_set>label>:checkbox:checked").each(function(i,item){
		if(updateMenuRoleMap.containsKey(item.value)){			
			updateMenuRoleMap.remove(item.value);
			$("#update_start_set").prepend($(item).parent());
		}
	});
});

$("#update_menu_cancel").click(function(){
	$("#update_menu_win").modal('hide');
});
/*显示修改菜单信息 结束*/



/*提交修改菜单信息 开始*/
$("#update_menu_confirm").click(function () {
    if ($('#update_menu_form').validate().form()) {        
        $.post("menu/edit.action",
            {
        		menuId: $("#update_menu_id").val(),
        		menuName:$.trim($("#update_menu_name").val()),
        		menuUrl:$.trim($("#update_menu_url").val()),
        		menuSort:$("#update_menu_sort").val(),
        		menuDescription:$.trim($("#update_menu_description").val()),
        		roleIds:updateMenuRoleMap.keys().join(",")
            },
            function (json) {
            	if (json&&json.success) {
                    //关闭修改菜单窗口
                    $("#update_menu_win").modal('hide');
                    //重置表单数据
                    //刷新菜单管理查询列表页面
                    refreshPage();

                } else{
                	alert(json?json.msg:"请求失败！");
                }
            });
    }
});
/*提交修改菜单信息 结束*/

/*显示详细菜单信息 开始*/
function show_detail_menu(id) {
    $.post("menu/detail.action",{menuId:id},
		function (json) {
    		if (json&&json.success) {
	        	var menu=json.result.data;
	            $("#detail_menu_id").val(menu.menuId);
	            $("#detail_menu_name").val(menu.menuName);
	            $("#detail_menu_url").val(menu.menuUrl);
	            $("#detail_menu_sort").val(menu.menuSort);
	            $("#detail_parent_id").val(menu.parentId);
	            $("#detail_create_time").val(new Date(menu.createTime).format());                
	            $("#detail_update_time").val(new Date(menu.updateTime).format());
	            $("#detail_menu_description").val(menu.menuDescription);
	            
	            $("#detail_role_set").empty();
	            $.each(json.result.roles, function(i,item){
	            	$("#detail_role_set").append("<span>"+item.roleName+"</span><br/>");
	            });
	            
	            $("#detail_menu_win").modal('show');
        	}else{
        		alert(json?json.msg:"请求失败！");
            }
	        
    	});
}

$("#detail_menu_confirm").click(function(){
		$("#detail_menu_win").modal('hide');
});
/*显示详细菜单信息 结束*/

// 函数定义
menuMgrFuc = {
	searchMenuValidation:function () {
        reg_validator = jQuery('#search_form').validate({
            errorClass:'error',
            validClass:'valid',
            highlight:function (element) {
                $(element).closest('div').addClass("f_error");
            },
            unhighlight:function (element) {
                $(element).closest('div').removeClass("f_error");
            },
            errorPlacement:function (error, element) {
                $(element).closest('div').append(error);
            },
            rules:{
            	menuId:{digits:true}
            },
            messages:{
            	menuId:{digits:"菜单编号必须是整数！"}
            },
            invalidHandler:function (form, validator) {
                $.sticky("您的查询条件有问题，请仔细检查！", {autoclose:5000, position:"top-right", type:"st-error" });
            }
        })
    },
    // validator 创建菜单
    addMenuValidation:function () {
        reg_validator = jQuery('#add_menu_form').validate({
            errorClass:'error',
            validClass:'valid',
            highlight:function (element) {
                $(element).closest('div').addClass("f_error");
            },
            unhighlight:function (element) {
                $(element).closest('div').removeClass("f_error");
            },
            errorPlacement:function (error, element) {
                $(element).closest('div').append(error);
            },
            rules:{
            	add_menu_name:{ required:true},
            	add_menu_sort:{ required:true,digits:true },
            	add_menu_description:{ required:true }
            },
            messages:{
            	add_menu_name:{ required:"菜单名称不能为空！"},
            	add_menu_sort:{ required:"排序序号不能为空！",digits:"排序序号必须是整数！" },
            	add_menu_description:{required:"菜单描述不能为空！"}
            },
            invalidHandler:function (form, validator) {
                $.sticky("您的表单填写的有问题，请仔细检查！", {autoclose:5000, position:"top-right", type:"st-error" });
            }
        })
    },
    // validator 修改菜单
    updateMenuValidation:function () {
        reg_validator = jQuery('#update_menu_form').validate({
            errorClass:'error',
            validClass:'valid',
            highlight:function (element) {
                $(element).closest('div').addClass("f_error");
            },
            unhighlight:function (element) {
                $(element).closest('div').removeClass("f_error");
            },
            errorPlacement:function (error, element) {
                $(element).closest('div').append(error);
            },
            rules:{
            	update_menu_name:{ required:true},
            	update_menu_sort:{ required:true,digits:true },
            	update_menu_description:{ required:true }
            },
            messages:{
            	update_menu_name:{ required:"菜单名称不能为空！"},
            	update_menu_sort:{ required:"排序序号不能为空！",digits:"排序序号必须是整数！" },
            	update_menu_description:{required:"菜单描述不能为空！"}
            },
            invalidHandler:function (form, validator) {
                $.sticky("您的表单填写的有问题，请仔细检查！", {autoclose:5000, position:"top-right", type:"st-error" });
            }
        })
    }
};


